package com.study.lu.newjdk;

import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @Author chaos-supreme(混沌至尊):raoluping
 * @Date 2017/11/16 16:08
 * @ProjectName incommonusefactory
 * @Description
 */
public class OptionTest {
  public static void main(String[] args) {
    testOptionalOf();
  }

  static class Demo1 {
    String name;
    String id;

      public String getName() {
          return name;
      }

      public void setName(String name) {
          this.name = name;
      }

      public String getId() {
          return id;
      }

      public void setId(String id) {
          this.id = id;
      }
  }


  /**
   * 为非null的值创建一个Optional。
   * 
   * of方法通过工厂方法创建Optional类。需要注意的是， 创建对象时传入的参数不能为null。如果传入参数为null，则抛出NullPointerException
   */
  private static void testOptionalOf() {
    Demo1 demo1 = new Demo1();
    demo1.id = "121";
    demo1.name = "121";
    Demo1 demo2 = null;
    if (null != demo1) {
      System.out.println(demo2.name);
    }
    Map<String,String> map = new ConcurrentHashMap<>();
    // Optional.of(T) T 必须非空不然就报错了
    // 下面这行行跟if语句等价
    String aa=Optional.ofNullable(demo1).map(u->u.getName()).orElse("null");
    Optional<Demo1> name2 = Optional.ofNullable(demo1);
    String te = name2.map(u->u.getName()).orElse("123");
    System.out.println(te);
  }


  /**
   * 
   */



}
